From 5fb7e2447325e277340ead7e52e099b4e0f167c3 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Wed, 28 Dec 2005 15:14:23 +0100 Subject: [PATCH] Set up X11 authorization when a VMX domain uses SDL. Signed-off-by: Hiromichi Itou --- tools/python/xen/xend/image.py | 3 +++ tools/python/xen/xm/create.py | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index 5fe114a59d..b8ebc7a2aa 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -194,6 +194,7 @@ class VmxImageHandler(ImageHandler): if not self.device_model: raise VmError("vmx: missing device model") self.display = sxp.child_value(imageConfig, 'display') + self.xauthority = sxp.child_value(imageConfig, 'xauthority') self.vm.storeVm(("image/dmargs", " ".join(self.dmargs)), ("image/device-model", self.device_model), @@ -340,6 +341,8 @@ class VmxImageHandler(ImageHandler): env = dict(os.environ) if self.display: env['DISPLAY'] = self.display + if self.xauthority: + env['XAUTHORITY'] = self.xauthority log.info("spawning device models: %s %s", self.device_model, args) self.pid = os.spawnve(os.P_NOWAIT, self.device_model, args, env) log.info("device model pid: %d", self.pid) diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py index 8d4c0f9cd3..58e278e6cd 100644 --- a/tools/python/xen/xm/create.py +++ b/tools/python/xen/xm/create.py @@ -388,6 +388,10 @@ gopts.var('display', val='DISPLAY', fn=set_value, default=None, use="X11 display to use") +gopts.var('xauthority', val='XAUTHORITY', + fn=set_value, default=None, + use="X11 Authority to use") + def err(msg): """Print an error to stderr and exit. @@ -526,7 +530,8 @@ def configure_vmx(config_image, vals): """ args = [ 'device_model', 'vcpus', 'cdrom', 'boot', 'fda', 'fdb', 'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'audio', - 'vnc', 'vncviewer', 'sdl', 'display', 'ne2000', 'lapic'] + 'vnc', 'vncviewer', 'sdl', 'display', 'ne2000', 'lapic', + 'xauthority' ] for a in args: if (vals.__dict__[a]): config_image.append([a, vals.__dict__[a]]) @@ -801,6 +806,9 @@ def parseCommandLine(argv): if not gopts.vals.display: gopts.vals.display = os.getenv("DISPLAY") + if not gopts.vals.xauthority: + gopts.vals.xauthority = os.getenv("XAUTHORITY") + # Process remaining args as config variables. for arg in args: if '=' in arg: -- 2.30.2